namespace Communication
{
    /// <summary>
    /// Contains status information of all message memories.
    /// </summary>
    public class MessageMemoryStatus
    {
        /// <summary>
        /// Initializes a new instance of the class.
        /// </summary>
        public MessageMemoryStatus()
        {
        }

        /// <summary>
        /// Initializes a new instance of the class with the specified parameters.
        /// </summary>
        /// <param name="readStorage">Status of the current read storage</param>
        /// <param name="writeStorage">Status of the current write storage</param>
        /// <param name="receiveStorage">Status of the current receive storage</param>
        public MessageMemoryStatus(MemoryStatus readStorage, MemoryStatus writeStorage, MemoryStatus receiveStorage)
        {
            ReadStorage = readStorage;
            WriteStorage = writeStorage;
            ReceiveStorage = receiveStorage;
        }

        /// <summary>
        /// Gets or sets the status of the current read storage.
        /// </summary>
        public MemoryStatus ReadStorage { get; set; }

        /// <summary>
        /// Gets or sets the status of the current receive storage.
        /// </summary>
        public MemoryStatus ReceiveStorage { get; set; }

        /// <summary>
        /// Gets or sets the status of the current write storage.
        /// </summary>
        public MemoryStatus WriteStorage { get; set; }
    }
}